package com.aaa.forum.services;

import com.aaa.forum.model.History;

import java.util.List;

/**
 * 历史记录接口
 */
public interface IHistoryService {
    /**
     * 根据历史记录id查询
     * @param id       历史记录id
     * @return          历史记录
     */
    History selectById(Long id);

    /**
     * 更新历史记录
     * 1. 如果历史记录不存在，则插入一条新记录
     * 2. 如果已经存在，则更新 updateTime 和 deleteState 字段
     * @param userId        用户id
     * @param articleId     帖子id
     */
    void update(Long userId, Long articleId);

    /**
     * 删除历史记录，deleteState 设置为1
     * @param id    历史记录id
     */
    void delete(Long id);

    /**
     * 根据用户id，查询用户的历史记录
     * @param userId    用户id
     * @return          历史记录列表
     */
    List<History> selectAllByUserId(Long userId);

    /**
     * 根据用户帖子id，删除历史记录
     * @param articleId     帖子id
     */
    void deleteByArticleId(Long articleId);
}
